The present invention relates generally to a communication system. More particularly, the present invention relates to a communication system that uses agents to enhance flexibility of the system.
Most existing communication systems grew out of the public-switched telephone system, which was created as a point-to-point voice system. Based on the initial concepts and the technologies of the time, telephones and telephone numbers were identified with specific people or locations. In other words, traditionally a person is identified with a specific telephone in a person""s home or office and that telephone is identified by a specific telephone number. That traditional mindset continues in the present day even though a person may have the use of multiple communications devices including landline telephones, cellular telephones and voicemail boxes. Accordingly, it is desirable to have a system that has increased flexibility and allows a person to receive a call using a desired device based, for example, on time of the day.
As technology advances, users are offered an increasingly varied number of features having greater complexity and sophistication. In conventional communication systems, such as telephone systems employing public branch exchanges (PBX) and central offices (CO), features are implemented in a call control system that uses a central resource manager. However, a serious drawback to this approach is that the call control system and the resource manager are very complex since they interact with or handle many aspects of the system, making modifications difficult to implement. In addition, modifications require highly specialized knowledge of the call control system and resource manager.
The difficulty of making such modifications results in an ineffective centralized system of requests for modifications or design changes. Typically, design change requests (DCR) received are centrally evaluated. Those requests believed to be of sufficiently high merit are planned to be implemented in a future release. This process typically involves many people or organizations and requires several months. In addition, a planned modification may not appear in the scheduled release if a subsequent DCR is given a higher priority.
Adding to the difficulty of the process is the highly specialized knowledge required. An experienced person who leaves an organization that maintains such centralized systems may be very difficult to replace and may affect the schedule of future releases or the number of modifications that can be made.
It is, therefore, desirable to provide a communication method and system that is flexible and eliminates the excessive complexity and difficulty in effecting system modifications.
It is an object of the present invention to obviate or mitigate at least one disadvantage of conventional communication systems. Generally, the present invention provides a data driven communication system that has three layers consisting of destination, people or network nodes, and devices. Software agents represent the entities of these layers and relationships between agents are defined by policies or chains of policies. These relationships are used to determine communication paths within the system as well as features associated with a particular communication. A database representation of the objects (agents and policies) is used to configure the system and receive updates to the system by an administrator. A graphical user interface can be used to enter data into the database and facilitates an intuitive understanding of the nature of the relationships involved.
In a first aspect, the present invention provides a method for establishing a communication path in a data-driven communication system. The method consists of defining a first relationship between a first layer agent and a second layer agent, and defining a second relationship between the second layer agent and a third layer agent. Next, a first communication link, between the first layer agent and the second layer agent, is established according to rules of the first relationship. A second communication link is then established, between the second layer agent and the third layer agent, according to rules of the second relationship. The first and second communication links establish a communication path.
In a presently preferred embodiment, the first layer agent is a destination agent, the second layer agent is a node agent, and the third layer agent is a device agent. The first and second relationship are defined by associating at least one policy, policy chain or branched policy chain with each of the relationships to define its rules. The communication path is established by providing system parameters, such as system time and system date, to the policies.
In a further aspect of the present invention, there is provided a data-driven communication system. The communication system includes a first layer agent, a second layer agent and a third layer agent. A first relationship, between the first layer agent and the second layer agent, is used to establish a communication link between them in response to data provided to the first layer agent. A second relationship, between the second layer agent and the third layer agent, is used to establish a second communication link between the second and third layer agents, in response to data provided by the second layer agent.
Again, in a presently preferred embodiment, the first layer agent is a device agent, the second layer agent is a node agent, and the third layer agent is a destination agent, and policies, policy chains or branched policy chains define the first and second relationships. System features can be provided for modifying the communication path. The system features can include in-call features, data modifying features, and advanced programmable system features.
It is presently preferred that the agents and policies be implemented as objects, through an acceptable object-oriented programming language. Typically, the objects are organized as records in tables in a database. Such a database permits the communication system to by configured at startup, or reconfigured as desired. A graphical user interface, displaying icons representing agents and policies, facilitates modification of the database.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying FIGS.